
var slime_member_model = require("../library/member.js");

module.exports = {

    
    /**
     * @api {model} slime_member_update_settings slime_member_update_settings
     * @apiDescription 会员更新设置
     * @apiGroup database
     * @apiParam {String} id 主键
     * @apiParam {String} ouid 组织单元ID
     * @apiParam {String} source_id 会员来源ID
     * @apiParam {Boolean} member_no 是否允许编辑会员号
     * @apiParam {Boolean} name 是否允许编辑昵称
     * @apiParam {Boolean} gender 是否允许编辑性别 
     * @apiParam {Boolean} id_card 是否允许编辑身份证
     * @apiParam {Boolean} real_name 是否允许编辑会员姓名
     * @apiParam {Boolean} phone 是否允许编辑会员手机
     * @apiParam {Boolean} email 是否允许编辑会员邮箱
     * @apiParam {Boolean} image_url 是否允许编辑会员头像
     * @apiParam {Boolean} country 是否允许编辑国家
     * @apiParam {Boolean} province 是否允许编辑省
     * @apiParam {Boolean} city 是否允许编辑市
     * @apiParam {Boolean} district 是否允许编辑区
     * @apiParam {Timestamp} birthday 是否允许编辑会员生日
     * @apiParam {Timestamp} create_date 记录时间
     * @apiParam {Timestamp} last_update 最后更新时间
     */

    "slime_member_update_settings" : @.merge.simple(@.keys(slime_member_model).reduce(function (result, field) {
        result[field] = @lab.types.bool();
        return result;
    },{}),{
        "id"          : @lab.types.id(),
        "ouid"        : @lab.types.string(),
        "source_id"   : @lab.types.string(),
        "create_date" : @lab.types.date(),
        "last_update" : @lab.types.date(),
    }),

    /**
     * @api {model} slime_member_updates slime_member_updates
     * @apiDescription 会员更新记录
     * @apiGroup database
     * @apiParam {String} id 主键
     * @apiParam {String[]} updated_fields 更新字段记录
     * @apiParam {String[]} source_id 会员来源源ID
     * @apiParam {String[]} member_id 会员ID
     * @apiParam {Timestamp} create_date 记录时间
     */
    "slime_member_updates" : @.merge.simple(slime_member_model,{
        "id"          : @lab.types.id(),
        "updated_fields" : @lab.types.strings(),
        "source_id"   : @lab.types.string(),
        "member_id"   : @lab.types.string(),
        "create_date" : @lab.types.date(),
    }),
    /**
     * @api {model} slime_member_updates slime_member_updates
     * @apiDescription 会员表
     * @apiGroup database
     * @apiParam {String} id 主键
     * @apiParam {String[]} updated_fields 更新字段记录
     * @apiParam {String[]} source_id 会员来源源ID
     * @apiParam {String[]} member_id 会员ID
     * @apiParam {Boolean} is_removed 删除标识
     * @apiParam {Timestamp} register_date 注册时间
     * @apiParam {Timestamp} create_date 记录时间
     * @apiParam {Timestamp} last_update 最后更新时间
     */
    "slime_members" : @.merge.simple(slime_member_model,{

        "id": @lab.types.id(),

        "ouid": @.merge(@lab.types.string(), {
            "type": "keyword"
        }),

        "create_date": @lab.types.date(),
        
        "last_update": @lab.types.date(),

        "register_date": @lab.types.date(),

        "is_removed": @lab.types.bool(),

    })

}